package com.tss.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.tss.pojo.Questionnaire;
import com.tss.pojo.Result;
import com.tss.service.QuestionnaireService;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

@Controller
@RequestMapping("questionnaire")
public class QuestionnaireController {
	
	@Autowired
	private QuestionnaireService questionnaireService;
	
	/**
	 * 创建调查问卷
	 * @param questionnaire
	 * @return
	 */
	@ResponseBody
	@RequestMapping("add")
	public String add(Questionnaire questionnaire){
		Result result = questionnaireService.cresteQuestionnaire(questionnaire);
		return result.toString();
	}
	
	
	/**
	 * 删除调查问卷
	 * @param id
	 * @return
	 */
	@ResponseBody
	@RequestMapping("delete")
	public String delete(Long id){
		Result result = questionnaireService.deleteQuestionnaire(id);
		return result.toString();
	}
	
	
	/**
	 * 修改调查问卷
	 * @param questionnaire
	 * @return
	 */
	@ResponseBody
	@RequestMapping("update")
	public String update(Questionnaire questionnaire){
		Result result = questionnaireService.updateQuesionnaire(questionnaire);
		return result.toString();
	}
	
	/**
	 * 检验问卷标题是否已存在
	 * @param questionnaire
	 * @return
	 */
	@ResponseBody
	@RequestMapping("check")
	public String check(Questionnaire questionnaire){
		Result result = new Result();
		Questionnaire q = questionnaireService.findQuestionnaire(questionnaire);
		if(q==null){
			result.setStatus(Result.STATUS_CODE_INEXISTENT);
			result.setMessage("问卷不存在！");
		}else{
			result.setStatus(Result.STATUS_CODE_EXISTENT);
			result.setMessage("问卷已存在！");
		}
		return result.toString();
	}
	
	
	/**
	 * 获取调查问卷列表
	 * @param questionnaire
	 * @param pageNum
	 * @param pageSize
	 * changed
	 * @return
	 */
	@ResponseBody
	@RequestMapping("list")
	public String list(Questionnaire questionnaire,@RequestParam(required=true,defaultValue="1") Integer pageNum,
            @RequestParam(required=false,defaultValue="10") Integer pageSize){
		List<Questionnaire> list = questionnaireService.listQuestionnaire(questionnaire);
		if(list==null||list.isEmpty()){
			return null;
		}
//		PageHelper.startPage(pageNum, pageSize);
//		PageInfo<Questionnaire> p = new PageInfo<>(list);
		return JSONArray.fromObject(list).toString();
	}
	


}
